module ICAPrb
  module Server
    # Status Codes by IANA / RFC for HTTP
    HTTP_STATUS_CODES =
        {100=>'Continue',
         101=>'Switching Protocols',
         102=>'Processing',
         200=>'OK',
         201=>'Created',
         202=>'Accepted',
         203=>'Non-Authoritative Information',
         204=>'No Content',
         205=>'Reset Content',
         206=>'Partial Content',
         207=>'Multi-Status',
         208=>'Already Reported',
         226=>'IM Used',
         300=>'Multiple Choices',
         301=>'Moved Permanently',
         302=>'Found',
         303=>'See Other',
         304=>'Not Modified',
         305=>'Use Proxy',
         306=>'Unused',
         307=>'Temporary Redirect',
         308=>'Permanent Redirect',
         400=>'Bad Request',
         401=>'Unauthorized',
         402=>'Payment Required',
         403=>'Forbidden',
         404=>'Not Found',
         405=>'Method Not Allowed',
         406=>'Not Acceptable',
         407=>'Proxy Authentication Required',
         408=>'Request Timeout',
         409=>'Conflict',
         410=>'Gone',
         411=>'Length Required',
         412=>'Precondition Failed',
         413=>'Payload Too Large',
         414=>'URI Too Long',
         415=>'Unsupported Media Type',
         416=>'Range Not Satisfiable',
         417=>'Expectation Failed',
         421=>'Misdirected Request',
         422=>'Unprocessable Entity',
         423=>'Locked',
         424=>'Failed Dependency',
         425=>'Unassigned',
         426=>'Upgrade Required',
         427=>'Unassigned',
         428=>'Precondition Required',
         429=>'Too Many Requests',
         430=>'Unassigned',
         431=>'Request Header Fields Too Large',
         451=>'Unavailable For Legal Reasons',
         500=>'Internal Server Error',
         501=>'Not Implemented',
         502=>'Bad Gateway',
         503=>'Service Unavailable',
         504=>'Gateway Timeout',
         505=>'HTTP Version Not Supported',
         506=>'Variant Also Negotiates',
         507=>'Insufficient Storage',
         508=>'Loop Detected',
         509=>'Unassigned',
         510=>'Not Extended',
         511=>'Network Authentication Required'}
    # differences defined in RFC 3507
    ICAP_STATUS_CODES = HTTP_STATUS_CODES.dup.merge(
      {
          100 => 'Continue after ICAP Preview',
          204 => 'No modifications needed',
          404 => 'ICAP Service not found',
          405 => 'Method not allowed for service',
          408 => 'Request timeout',
          500 => 'Server error',
          501 => 'Method not implemented',
          503 => 'Service overloaded',
          505 => 'ICAP version not supported by server'
      })
  end
end